#ifndef XMLINFOVILLE_HPP
#define XMLINFOVILLE_HPP

#include "XmlInfoNom.hpp"

/**
 * Classe qui représente les informations sur une ville. Un ville est
 * définie par un nom, un pays et est associée à un certain nombre de
 * propriétés comme la réputation, le pourcentage infernal, ...
 *
 * @author Johan "Solo" Luisier
 * @date Octobre 2011
 */
class XmlInfoVille : public XmlInfoNom
{
public:
  XmlInfoVille( const QString& nomFichier, const unsigned& id,
		const QString& nom, const QString& pays,
		const unsigned& reputation, const unsigned& nbrInfernaux,
		const unsigned& pourcentageInfernal );
  XmlInfoVille( const XmlInfoVille& ville );
  ~XmlInfoVille();
  XmlInfoVille& operator=( const XmlInfoVille& ville );
  const QString& pays() const;
  const unsigned& reputation() const;
  const unsigned& nbrInfernaux() const;
  const unsigned& pourcentageInfernal() const;
  void setPays( const QString& pays );
  void setReputation( const unsigned& reputation );
  void setNbrInfernaux( const unsigned& nbrInfernaux );
  void setPourcentageInfernal( const unsigned& pourcentageInfernal );
protected:
  /**
   * Nom du pays dans lequel se trouve la ville.
   */
  QString Pays;
  /**
   * Score de réputation de l'agence sur cette ville.
   */
  unsigned Reputation;
  /**
   * Nombre de contrats infernaux effectués sur cette ville.
   */
  unsigned NbrInfernaux;
  /**
   * Progression de l'apparition d'un contrat infernal sur la ville.
   */
  unsigned PourcentageInfernal;
};

#endif // XMLINFOVILLE_HPP
